1. Field of the Invention
The present invention is generally related to interrupt handling control algorithms as utilized in computer operating systems and, in particular, to a fast-response interrupt handling architecture and algorithm well suited for use in hard real-time multi-user operating systems.
2. Description of the Related Art
Multi-tasking operating systems, including multi-user and multi-tasking operating systems such as the UNIX.RTM. operating system developed by the Bell Laboratory Division of AT&T, are highly desireable for a number of substantially advanced computer uses including program development, network communications and multiprocessor control. However, a notable deficiency of such operating systems is a failure to perform adequately under hard real-time operating constraints. Contemporary real-time computing theory suggests that real-time events can be handled in definitive worst case circumstances if all execution processes are broken into small, discreetly schedulable tasks. Unix and similar multi-tasking, multi-user operating system would therefore seem to be well suited to real-time computer system applications.
There are, however, a number of problems that arise with a practical implementation of multi-tasking real-time control theory. The subdivision of computing processes into many separate tasks imposes a not insubstantial overhead burden on the operating system resources and the underlying execution performance of the computer system. While this problem may be directly addressed by increasing hardware performance levels, the solution tends to significantly increase the cost and complexity of the computer system.
Another problem is less easily handled. This second problem arises as a consequence of permitting both real-time critical and non-critical tasks to co-execute in the common process environment of the operating system. Such non-critical tasks include conventional computer networking processes and user interface processes, as well as standard non-critical user oriented application programs. While the priority of such non-critical processes may be set substantially below that of the real-time critical processes, the cumulative time investment in interrupt handling for the non-critical processes may well be sufficient to interfere with the prompt execution of the real-time critical tasks. Perhaps even more significant is the general inability to guarantee that interrupt handling will be a small and distinctly bounded period of time with respect to each execution of a hard real-time task. Well defined bounded interrupt handling is required in order to guarantee proper operation of a hard real-time computer operating system.